#include "wxsdirdialog.h"
#include "../wxsitemresdata.h"
#include <wx/dirdlg.h>

namespace {
  wxsRegisterItem<wxsDirDialog> Reg( _T( "DirDialog" ), _T( "目录对话框" ), wxsTTool, _T( "对话框" ), 190, false );
  WXS_ST_BEGIN( wxsDirDialogStyles, _T( "wxDD_DEFAULT_STYLE" ) )
  WXS_ST_CATEGORY( "wxDirDialog" )
  WXS_ST( wxDD_DEFAULT_STYLE )
  WXS_ST( wxDD_DIR_MUST_EXIST )
  WXS_ST( wxDD_CHANGE_DIR )
  WXS_ST_DEFAULTS()
  WXS_ST_END()
}

wxsDirDialog::wxsDirDialog( wxsItemResData* Data ):
  wxsTool( Data, &Reg.Info, 0, wxsDirDialogStyles ) {
  m_Message = _T( "Select directory" );
}

void wxsDirDialog::OnBuildCreatingCode() {
  switch( GetLanguage() ) {
    case wxsCPP: {
      AddHeader( _T( "<wx/dirdlg.h>" ), GetInfo().ClassName, hfInPCH );
      Codef( _T( "%C(%W, %t, %t, %T, %P, %S, %N);\n" ), m_Message.wx_str(), m_DefaultPath.wx_str() );
      BuildSetupWindowCode();
      return;
    }
    case wxsUnknownLanguage:
    default: {
      wxsCodeMarks::Unknown( _T( "wxsDirDialog::OnBuildCreatingCode" ), GetLanguage() );
    }
  }
}

void wxsDirDialog::OnEnumToolProperties( M_Code_unused long Flags ) {
  WXS_SHORT_STRING( wxsDirDialog, m_Message, _T( "Message" ), _T( "message" ), _T( "" ), false );
  WXS_SHORT_STRING( wxsDirDialog, m_DefaultPath, _T( "Default path" ), _T( "default_path" ), _T( "" ), false );
}
